package thread;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 74646
 * Date: 2022-04-30
 * Time: 10:40
 */

/**
 * TIMED_WAITING：排队等待的状态
 * 当代码中调用了 sleep 或 join(超时时间)，就会进入到 TIMED_WAITING
 * 当前线程在一段时间之内是阻塞状态；时间到了之后阻塞状态就会解除
 * TIMED_WAITING 也是阻塞状态的一种
 */
public class TestDemo20 {
    public static void main(String[] args) {
        Thread t = new Thread(()->{
            while (true){
                // 在循环中调用 sleep，就是让线程在一定时间内处于阻塞状态
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
        });
        t.start();

        /**
         *  此处的 sleep 是由于不确定是 t 线程先执行还是 main 线程先执行，
         *  所以在获取状态前调用 sleep 方法，先睡眠 1 秒再获取 t 线程的状态，
         */
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(t.getState());
    }
}
